package com.bbcare.followup.plat.store.ibatis;

import java.util.List;
import java.util.Map;

import com.bbcare.followup.plat.entity.FollowScheme;
import com.bbcare.followup.plat.entity.FollowSchemeVersion;

/*
 * @name:         方案信息存储接口
 * @author:       DemonLee
 * @createTime:   2017.4.18
 * @description:  方案基本信息
 * @modify:
 * 
 */
public interface IFollowSchemeDAO {
    /**
     * 查询方案list
     * 
     * @param id
     * @return list
     */
    public List<FollowScheme> selectById(Map<String, Object> paramMap) throws Exception;

    /**
     * 查询方案信息（redis缓存使用）
     * 
     * @param
     * @return list
     */
    public List<Map<String, Object>> selectSchemeInfo(Map<String, Object> paramMap) throws Exception;

    /**
     * 查询方案list
     * 
     * @param authorId,tenantId,schemeStatus,schemeType${}
     * @return list
     */
    public List<FollowScheme> selectSchemeByAuthority(Map<String, Object> paramMap) throws Exception;

    /**
     * 添加方案
     * 
     * @param FollowScheme
     * @return
     */
    public void saveSchemeInfo(FollowScheme fs) throws Exception;

    /**
     * 添加方案版本
     * 
     * @param saveSchemeVersionInfo
     * @return
     */
    public void saveSchemeVersionInfo(FollowSchemeVersion fsv) throws Exception;

    /**
     * 根据方案名称查询方案
     * 
     * @param schemeName
     * @return list
     */
    public List<FollowScheme> selectSchemeByName(Map<String, Object> paramMap) throws Exception;

    /**
     * 删除（修改）方案
     * 
     * @param map
     * @return
     */
    public int modSchemeInfo(Map<String, Object> paramMap) throws Exception;

    /**
     * 查询方案版本list
     * 
     * @param scheme_id,scheme_version
     * @return list
     */
    public List<FollowSchemeVersion> selectBySchemeIdAndVersion(Map<String, Object> paramMap) throws Exception;
}
